package com.example.hyw.szysteam.arithmetic;

/**
 * Created by HYW on 2018/6/11.
 */

public class Count {
    public static MyNumber count(String operator,MyNumber number1,MyNumber number2){
        MyNumber result=new MyNumber();
        int n1=number1.getNumerator();
        int d1=number1.getDenominator();
        int n2=number2.getNumerator();
        int d2=number2.getDenominator();
        switch (operator){
            case "+":
                if (d1 != d2) {
                    n1 = n1 * d2;
                    n2 = n2 * d1;
                    d1 = d1 * d2;
                    result.setNumerator(n1 + n2);
                    result.setDenominator(d1);
                    result = result.reduction(result);
                } else {
                    result.setNumerator(n1 + n2);
                    result.setDenominator(d1);
                    result = result.reduction(result);
                }
                break;
            case "-":
                if (d1 != d2) {
                    n1 = n1 * d2;
                    n2 = n2 * d1;
                    d1 = d1 * d2;
                    d2 = d1;
                    result.setNumerator(n1 - n2);
                    result.setDenominator(d1);
                    result = result.reduction(result);
                } else {
                    result.setNumerator(n1 - n2);
                    result.setDenominator(d1);
                    result = result.reduction(result);
                }
                break;
            case "×":
                result.setNumerator(n1 * n2);
                result.setDenominator(d1 * d2);
                result = result.reduction(result);
                break;
            case "÷":
                if (n2 == 0) {
                    result = new MyNumber(0, 0);
                    break;
                }
                result.setNumerator(n1 * d2);
                result.setDenominator(d1 * n2);
                result = result.reduction(result);
                break;
            default:
                break;
        }
        return result;
    }

    public static int Max(MyNumber number1,MyNumber number2){
        int n1 = number1.getNumerator();
        int d1 = number1.getDenominator();
        int n2 = number2.getNumerator();
        int d2 = number2.getDenominator();
        n1 = n1 * d2;
        n2 = n2 * d1;
        if (n1 > n2) {
            return 1;
        } else if (n1 < n2) {
            return 2;
        } else {
            return 3;
        }
    }
}
